package org.yinweichen.llm_dataset_backend.service;

import org.yinweichen.llm_dataset_backend.entity.Version;

import java.util.List;

public interface VersionService {
    /**
     * 创建新版本
     * @param baseVer 基础版本号，为null时创建空白版本
     * @param newVer 新版本号
     * @param description 版本描述
     * @return 创建的新版本
     */
    Version createVersion(String baseVer, String newVer, String description);

    /**
     * 发布版本
     * @param versionId 要发布的版本号
     * @return 发布后的版本
     */
    Version publishVersion(String versionId);
    List<Version> getPublished();
    List<Version> getUnpublished();



    /**
     * 获取单个版本详情
     * @param versionId 版本ID
     * @return 版本对象
     * @throws IllegalArgumentException 当版本不存在时抛出异常
     */
    Version getVersion(String versionId) throws IllegalArgumentException;

    /**
     * 获取所有版本（按时间降序）
     * @return 版本列表
     */
    List<Version> getAllVersions();
}
